package cn.wolfcode.wolf2w.service;

import cn.wolfcode.wolf2w.domain.Destination;
import cn.wolfcode.wolf2w.domain.StrategyCatalog;
import cn.wolfcode.wolf2w.query.DestinationQuery;
import cn.wolfcode.wolf2w.query.QueryObject;
import cn.wolfcode.wolf2w.util.JsonResult;
import org.springframework.data.domain.PageImpl;

import java.util.List;

public interface IDestinationService {

    /**
     * 保存操作
     * @param destination
     */
    void save(Destination destination);

    /**
     * 删除操作
     * @param id
     */
    void delete(String id);

    /**
     * 修改操作
     * @param destination
     */
    void update(Destination destination);

    /**
     * 根据id查询用户对象
     * @param id
     * @return
     */
    Destination findByOne(String id);

    /**
     * 查询数据库所有用户信息
     * @return
     */
    List<Destination> findAll();

    /**
     * 查询匹配的城市(根据区域id查询Region对象,根据区域对象关联id查询城市)
     * @param rid
     * @return
     */
    List<Destination> getDestByRegionId(String rid);

    /**
     * 高查
     * @param qo
     * @return
     */
    Object query(DestinationQuery qo);

    /**
     * 修改目的地简介信息
     * @param id
     * @param info
     */
    void updateInfo(String id, String info);

    /**
     * 吐司
     * 查询当前parentId所有的父亲
     * @param parentId
     * @return
     */
    List<Destination> queryToasts(String parentId);

    /**
     * 查询所有城市
     * @param deep
     * @return
     */
    Object findDestByDeep(int deep);

    /**
     * regionId:区域id
     * 查询区域id下面省份和城市
     * @param regionId
     * @return
     */
    List<Destination> search(String regionId);

}
